package com.king.nio;

import java.nio.IntBuffer;

/**
 * nio 简单案例
 * buffer的使用
 *
 * @author king
 * @date 2020/12/24 13:13
 */
public class BasicBuffer {
    public static void main(String[] args) {
        // 举例说明 Buffer 的使用（简单说明）
        // 创建一个 Buffer， 大小为5，即可以存放5个int
        IntBuffer intBuffer = IntBuffer.allocate(5);

        /**
         * buffer属性
         * capacity: 最大容量，创建时设定，不可修改
         * limit：表示缓冲区的当前终点，不能对超过极限的位置进行读写操作。可修改
         * position：下一个要被读写的元素索引，每次进行读写都会修改
         * mark: 标记
         */

        // 向 buffer 存放数据
        for (int i = 0; i < intBuffer.capacity(); i++) {
            intBuffer.put(i * 2);
        }

        // buffer 读取数据
        // 将 buffer 转换，读写切换
        intBuffer.flip();

        while (intBuffer.hasRemaining()) {
            System.out.println(intBuffer.get());
        }
    }
}
